package cn.edu.xjtu.work.commonChars;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 1002. 查找常用字符
 * 
 * 
 * 给定仅有小写字母组成的字符串数组 A，返回列表中的每个字符串中都显示的全部字符（包括重复字符）组成的列表。例如，如果一个字符在每个字符串中出现 3
 * 次，但不是 4 次，则需要在最终答案中包含该字符 3 次。
 * 
 * 你可以按任意顺序返回答案。
 */
public class Solution {
    public static void main(String[] args) {

    }

    public List<String> commonChars(String[] words) {
        List<String> ret = new ArrayList<>();
        int[] minFrequency = new int[26];
        Arrays.fill(minFrequency, Integer.MAX_VALUE);
        for (String str : words) {
            int[] frequency = new int[26];
            for (int i = 0; i < str.length(); i++) {
                frequency[str.charAt(i) - 'a']++;
            }
            for (int i = 0; i < frequency.length; i++) {
                minFrequency[i] = Math.min(minFrequency[i], frequency[i]);
                frequency[i] = 0;
            }
        }
        System.out.println(Arrays.toString(minFrequency));
        for (int i = 0; i < minFrequency.length; i++) {
            while (minFrequency[i] != 0) {
                ret.add((char) ('a' + i) + "");
                minFrequency[i]--;
            }
        }
        return ret;
    }
}
